package com.example.demo.ai;

import com.example.demo.ai.model.InterviewAnalysis;
import com.example.demo.ai.model.InterviewQA;
import com.example.demo.ai.model.ResumeAnalysis;
import java.util.List;

/**
 * 新的AI面试服务接口
 * 提供更简洁、高效的面试问题生成和答案分析功能
 */
public interface NewInterviewService {
    
    /**
     * 根据简历和职位信息生成面试问题
     * @param resumeText 简历文本
     * @param jobTitle 职位名称
     * @param jobDescription 职位描述
     * @param industry 行业
     * @param difficulty 难度级别（1-5）
     * @param questionCount 问题数量
     * @return 面试问题列表
     */
    List<String> generateInterviewQuestions(String resumeText, String jobTitle, String jobDescription,
                                          String industry, Integer difficulty, Integer questionCount);
    
    /**
     * 生成单个面试问题（基于历史问题上下文）
     * @param resumeText 简历文本
     * @param jobTitle 职位名称
     * @param jobDescription 职位描述
     * @param industry 行业
     * @param difficulty 难度级别
     * @param previousQuestions 之前的问题列表
     * @return 单个面试问题
     */
    String generateSingleQuestion(String resumeText, String jobTitle, String jobDescription,
                                String industry, Integer difficulty, List<String> previousQuestions);
                                 
    /**
     * 生成单个面试问题（结合用户之前的回答）
     * @param resumeText 简历文本
     * @param jobTitle 职位名称
     * @param jobDescription 职位描述
     * @param industry 行业
     * @param difficulty 难度级别
     * @param qaList 用户的问题-答案列表
     * @return 单个面试问题
     */
    String generateSingleQuestionWithContext(String resumeText, String jobTitle, String jobDescription,
                                           String industry, Integer difficulty, List<InterviewQA> qaList);
    
    /**
     * 分析面试答案
     * @param resumeText 简历文本
     * @param qaList 问题-答案列表
     * @param jobTitle 职位名称
     * @return 面试分析结果
     */
    InterviewAnalysis analyzeInterviewAnswers(String resumeText, List<InterviewQA> qaList, String jobTitle);
    
    /**
     * 分析简历
     * @param resumeText 简历文本
     * @param jobTitle 目标职位
     * @return 简历分析结果
     */
    ResumeAnalysis analyzeResume(String resumeText, String jobTitle);
    
    /**
     * 生成示例答案
     * @param resumeText 简历文本
     * @param qaList 用户的问题-答案列表
     * @param jobTitle 职位名称
     * @return 示例问题-答案列表
     */
    List<InterviewQA> generateExampleAnswers(String resumeText, List<InterviewQA> qaList, String jobTitle);
    
    /**
     * 分析单个面试答案
     * @param resumeText 简历文本
     * @param userAnswer 用户回答
     * @param question 面试问题
     * @param jobTitle 职位名称
     * @return 面试分析结果
     */
    InterviewAnalysis analyzeInterviewAnswer(String resumeText, String userAnswer, String question, String jobTitle);
    
    /**
     * 生成单个示例答案
     * @param resumeText 简历文本
     * @param question 面试问题
     * @param jobTitle 职位名称
     * @return 示例答案文本
     */
    String generateSingleExampleAnswer(String resumeText, String question, String jobTitle);
}